home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / plain C OS8 / Gadgets / GadgetsApp.c < prev    next >
Encoding:
Text File  |  1998-10-29  |  1.5 KB  |  105 lines  |  [TEXT/CWIE]

  1. // GadgetsApp.c -- application-level functions
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Events.h>
  7. #include <Lists.h>
  8. #include <Menus.h>
  9. #include <TextEdit.h>
  10. #include <stdlib.h>
  11.  
  12. #include "ResourceDefs.h"
  13. #include "Dispatcher.h"
  14.  
  15. #include "GadgetsEngine.h"
  16. #include "GadgetsDoc.h"
  17. #include "AMWindow.h"
  18. #include "GadgetsApp.h"
  19.  
  20.  
  21. //----------
  22. GadgetsApp*        NewGadgetsApp ()
  23. {
  24.     GadgetsApp*        app;
  25.  
  26.     app = (GadgetsApp*)malloc (sizeof (GadgetsApp));
  27.     GadgetsApp_Init (app);
  28.     SetClassID (app, classGadgetsApp);
  29.  
  30.     return app;
  31. }
  32.  
  33. //----------
  34. void    DeleteApp (
  35.     AMApp*        app)
  36. {
  37.     GadgetsApp_Free ((GadgetsApp*)app);
  38.     free (app);
  39. }
  40.  
  41. /*----------*/
  42. void    GadgetsApp_Init (
  43.     GadgetsApp*        self)
  44. {
  45.     AMApp_Init ((AMApp*) self);
  46.  
  47.     self->super.mNumOpenTypes = 1;
  48.     self->super.mOpenTypeList [0] = kFileType;
  49. }
  50.  
  51. /*----------*/
  52. void    GadgetsApp_Free (
  53.     GadgetsApp*        self)
  54. {
  55.     AMApp_Free ((AMApp*) self);
  56. }
  57.  
  58. /*----------*/
  59. AMDoc*        MakeDoc (
  60.     AMApp*        self)
  61. {
  62.     GadgetsDoc*        doc = NewGadgetsDoc ();
  63.  
  64.     if (doc != nil) {
  65.         //? add to list of docs
  66.     }
  67.  
  68.     return (AMDoc*) doc;
  69. }
  70.  
  71. /*----------*/
  72. void    OpenApp (
  73.     AMApp*        self)
  74. {
  75.     DoNew (self);
  76. }
  77.  
  78. //----------
  79. Boolean        DoAppCommand (
  80.     AMApp*        self,
  81.     long        inCommand)
  82. {
  83.     Boolean        result = true;
  84.  
  85.     switch (inCommand) {
  86.         case cmdNew:
  87.                 DoNew (self);
  88.             break;
  89.         case cmdOpen:
  90.                 DoOpen (self);
  91.             break;
  92.         case cmdClose:
  93.                 DoClose (self);
  94.             break;
  95.         case cmdQuit:
  96.                 DoQuit (self);
  97.             break;
  98.  
  99.         default:
  100.                 result = false;
  101.     } // case
  102.  
  103.     return result;
  104. }
  105.